package pl.kosmowska.ewelina.client.views;


import java.util.Date;
import java.util.List;

import pl.kosmowska.ewelina.client.app.requestfactory.dto.CategoryDataProxy;
import pl.kosmowska.ewelina.client.app.requestfactory.dto.OutcomeDataProxy;

import com.google.gwt.place.shared.Place;
import com.google.gwt.user.client.ui.IsWidget;

public interface OutcomeEditView extends IsWidget {

	interface Presenter {
		void goTo(Place place);

		void loadCategories();

		void saveSingleOutcomeData(String name, float value, String category,
				Date date, String priority, String sponsorKey);

		void generateSavingsPlan(String name, float value, String category,
				Date date, String priority);

		void generateLoan(String name, float value, String category, Date date,
				String priority);

		void reInitSavingsPlan(float newValue);

		void editAllRepeatedOutcomeData(String name, float value, String category,
				Date date, String priority, Date repeatEndDate, long interval,
				int repeatFrequencyBoxIndex);

		void editFollowingRepeatedOutcomeData(String name, float value,
				String category, Date date, String priority, Date repeatEndDate,
				long interval, int repeatFrequencyBoxIndex);

		void saveRepeatedOutcomeData(String name, float value, String category,
				Date date, String priority, Date repeatEndDate, long interval,
				int repeatFrequencyBoxIndex);

		void saveIfBalancePositive(String name, float value, String category, Date date,
				String priority);



	}

	void setPresenter(Presenter presenter);



	void setOutcome(boolean isOutcome);

	void setData(OutcomeDataProxy outcomeData);

	void initCategoryList(List<CategoryDataProxy> categoryDataList);

	void showMessage(String errorMessage);

	void initSavingsOptionDialog();

	boolean isAlreadyInit();

	void setAlreadyInit(boolean alreadyInit);

	void reInitView();

}
